/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Negocio;

import Datos.Bombero;
import Datos.DB.EmergenciaImpDB;
import Datos.Emergencia;
import Datos.EmergenciaImpl;
import Datos.GradoEmergencia;
import Datos.Militar;
import Datos.Policia;
import Datos.RegistroLlamada;
import java.sql.Date;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author BraymeS
 */
public class GestorEmergencias {
    Emergencia emergencia;
    EmergenciaImpl emergenciaim=new EmergenciaImpl();
    EmergenciaImpDB gestorDB=new EmergenciaImpDB();
    GradoEmergencia alarmaIncendio ;
    GradoEmergencia alarmaRobo ;
    Militar militar = new Militar("Calle Larga", "03268765", "adanowsky@hot.com", null);
    Policia policia = new Policia("Calle Tarqui", "101011", "pizerolli", null);
    Bombero bombero = new Bombero("Los Andes", "78954", "lacualquiera", null);
    
    public GestorEmergencias() {
        this.alarmaIncendio = new GradoEmergencia("Incendio");
        this.alarmaRobo = new GradoEmergencia("Robo");
    }
    
    GestorRegistroLLamada gestorRegistroLlamada = new GestorRegistroLLamada();
    
    public void IniciarEmergencia(Integer numero, String fecha, Integer numRegistroLlamada, String tipoAlarma) throws SQLException{
        RegistroLlamada r = gestorRegistroLlamada.buscarRegistroLlamada(numRegistroLlamada);
         if(tipoAlarma.equals("Incendio")){
             emergencia = new EmergenciaImpl(numero,fecha, r, this.alarmaIncendio);
             emergenciaim = new EmergenciaImpl(numero,fecha, r, this.alarmaIncendio);
             agregarPolicia(this.policia);
             agregarBombero(this.bombero);
             
         }
         if(tipoAlarma.equals("Robo")){
             emergencia = new EmergenciaImpl(numero,fecha, r, this.alarmaRobo);
             emergenciaim = new EmergenciaImpl(numero,fecha, r, this.alarmaRobo);
             agregarPolicia(this.policia);
         }
         
    }
    public void agregarPolicia(Policia policia){
        emergencia = new Policia(emergencia, policia.getDireccion(), policia.getTelefono(), policia.getCorreo(), policia.getRepresentante());
    }
    public void agregarMilitar(Militar militar){
        emergencia = new Militar(emergencia, militar.getDireccion(), militar.getTelefono(), militar.getCorreo(), militar.getRepresentante());
    }
    public void agregarBombero(Bombero bombero){
        emergencia = new Bombero(emergencia, bombero.getDireccion(), bombero.getTelefono(), bombero.getCorreo(), bombero.getRepresentante());
    }
    
    public void CrearEmergencia() throws SQLException{
        
        gestorDB.grabarEmergencia(emergenciaim,emergencia.getnombreEntidad());
     }
    
    public ArrayList BuscarEmergencia(){
        try {
            emergenciaim=gestorDB.buscar();
            
            ArrayList datos=new ArrayList();
            datos.add(emergenciaim.getFecha().toString());
            datos.add(emergenciaim.getNumero().toString());
            return datos;
        } catch (SQLException ex) {
            Logger.getLogger(GestorOperador.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    
    public ArrayList BuscarEmergenciaTabla(){
        try {
            ArrayList datos=new ArrayList();
            datos=gestorDB.buscarE();
            //System.out.println(datos.get(datos.size()-1)+" zxczcasdasdasd");
           
            return datos;
        } catch (SQLException ex) {
            Logger.getLogger(GestorOperador.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
    
    public Integer BuscarEmergenciaSup(String cedula){
        try {
            
            Integer datos=gestorDB.buscarS(cedula);
            //System.out.println(" zxczcasdasdasd");
           
            return datos;
        } catch (SQLException ex) {
            Logger.getLogger(GestorOperador.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    public void setEmergencia(Emergencia emergencia) {
        this.emergencia = emergencia;
    }

    public Emergencia getEmergencia() {
        return emergencia;
    }
    
   
    
}
